<?php
namespace app\index\controller;

use app\common\controller\IndexBase;
use app\common\library\YuUtil;
use think\Exception;


class Useradvise extends IndexBase
{

    /**
     * @var 登录的用户id
     */
    protected $uid;
    /**
     * @var 登录的用户信息对象
     */
    protected $jsonObject;

    /**
     * @var 登录的token
     */
    protected $token;

    /**
     * @var array 前置操作，这里是检查登录
     */
    protected $beforeActionList = [
        'checkAuth'=>['except'=>'']
    ];

    /**
     * @title 检查登录
     * @description 检查登录
     * @author Admin ldy
     * @param name:token  type:string require:1 default:1 desc:
     * @time 2018/9/19  9:36
     */
    protected function checkAuth(){
        /// 如需登录，调用此方法鉴权
        /// 注解1：如果已经登录，则会获取到uid;否则会直接打印错误信息，不执行下面的代码
        /// 注解2：该方法走的是缓存，不通过数据库检查
        /// 注解3：如果没有token信息，需要调登录接口，重新获取token，并保存，token有效期暂定为30天
        /// 注解4：该类所有方法需要登录鉴权，故预先加载
        $cookietoken = $this->request->param('token');
        $cookieuser = $this->request->param('userstring');

        if (YuUtil::is_empty($cookietoken)||YuUtil::is_empty($cookieuser)){
            $cookietoken =cookie('scj_token');
            $cookieuser =cookie('scj_user');
            echo '没有cookie'.$cookieuser;
            echo '<br>没有cookie'.$cookietoken;
            exit;
        }

//        $cookietoken =cookie('scj_token');
//        $cookieuser =cookie('scj_user');
//        $cookietoken =cookie('scj_token');
//        $cookieuser =cookie('scj_user');

        try {
            //验证客服端是否有token
            if (YuUtil::is_empty($cookietoken)|| YuUtil::is_empty($cookieuser)) {
                $this->redirect('index/login');
            }
            //验证服务器中的token与客户端是否一致！！
            $this->checkUidByToken($cookietoken);
            //从客户端中获取用户信息？
            $jsonObject = json_decode($cookieuser);
            $this->uid = $jsonObject->id;
            $this->jsonObject = $jsonObject;
            $this->token = $cookietoken;
        }catch (Exception $e){
            echo $e->getTraceAsString();
        }
        //用户如果操作了个人的数据，就代表今天签到了
//        Sign::isSignToday($this->uid);
    }

    public function advise(){
        // 指定模板输出
        return $this->view->fetch('UserAdvise/advise');
    }


}
